// Andrew Naplavkov

// http://unicode.org/faq/casemap_charprop.html
// ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt

#ifndef BRIG_UNICODE_LOWER_CASE_HPP
#define BRIG_UNICODE_LOWER_CASE_HPP

#include <algorithm>
#include <cstdint>
#include <iterator>
#include <utility>

namespace brig { namespace unicode {

inline uint32_t lower_case(const uint32_t cp)
{
  using namespace std;
  static const pair<uint32_t, uint32_t> mapping[] =
  {
  make_pair(0x41, 0x61), // LATIN CAPITAL LETTER A
  make_pair(0x42, 0x62), // LATIN CAPITAL LETTER B
  make_pair(0x43, 0x63), // LATIN CAPITAL LETTER C
  make_pair(0x44, 0x64), // LATIN CAPITAL LETTER D
  make_pair(0x45, 0x65), // LATIN CAPITAL LETTER E
  make_pair(0x46, 0x66), // LATIN CAPITAL LETTER F
  make_pair(0x47, 0x67), // LATIN CAPITAL LETTER G
  make_pair(0x48, 0x68), // LATIN CAPITAL LETTER H
  make_pair(0x49, 0x69), // LATIN CAPITAL LETTER I
  make_pair(0x4a, 0x6a), // LATIN CAPITAL LETTER J
  make_pair(0x4b, 0x6b), // LATIN CAPITAL LETTER K
  make_pair(0x4c, 0x6c), // LATIN CAPITAL LETTER L
  make_pair(0x4d, 0x6d), // LATIN CAPITAL LETTER M
  make_pair(0x4e, 0x6e), // LATIN CAPITAL LETTER N
  make_pair(0x4f, 0x6f), // LATIN CAPITAL LETTER O
  make_pair(0x50, 0x70), // LATIN CAPITAL LETTER P
  make_pair(0x51, 0x71), // LATIN CAPITAL LETTER Q
  make_pair(0x52, 0x72), // LATIN CAPITAL LETTER R
  make_pair(0x53, 0x73), // LATIN CAPITAL LETTER S
  make_pair(0x54, 0x74), // LATIN CAPITAL LETTER T
  make_pair(0x55, 0x75), // LATIN CAPITAL LETTER U
  make_pair(0x56, 0x76), // LATIN CAPITAL LETTER V
  make_pair(0x57, 0x77), // LATIN CAPITAL LETTER W
  make_pair(0x58, 0x78), // LATIN CAPITAL LETTER X
  make_pair(0x59, 0x79), // LATIN CAPITAL LETTER Y
  make_pair(0x5a, 0x7a), // LATIN CAPITAL LETTER Z
  make_pair(0xc0, 0xe0), // LATIN CAPITAL LETTER A WITH GRAVE
  make_pair(0xc1, 0xe1), // LATIN CAPITAL LETTER A WITH ACUTE
  make_pair(0xc2, 0xe2), // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
  make_pair(0xc3, 0xe3), // LATIN CAPITAL LETTER A WITH TILDE
  make_pair(0xc4, 0xe4), // LATIN CAPITAL LETTER A WITH DIAERESIS
  make_pair(0xc5, 0xe5), // LATIN CAPITAL LETTER A WITH RING ABOVE
  make_pair(0xc6, 0xe6), // LATIN CAPITAL LETTER AE
  make_pair(0xc7, 0xe7), // LATIN CAPITAL LETTER C WITH CEDILLA
  make_pair(0xc8, 0xe8), // LATIN CAPITAL LETTER E WITH GRAVE
  make_pair(0xc9, 0xe9), // LATIN CAPITAL LETTER E WITH ACUTE
  make_pair(0xca, 0xea), // LATIN CAPITAL LETTER E WITH CIRCUMFLEX
  make_pair(0xcb, 0xeb), // LATIN CAPITAL LETTER E WITH DIAERESIS
  make_pair(0xcc, 0xec), // LATIN CAPITAL LETTER I WITH GRAVE
  make_pair(0xcd, 0xed), // LATIN CAPITAL LETTER I WITH ACUTE
  make_pair(0xce, 0xee), // LATIN CAPITAL LETTER I WITH CIRCUMFLEX
  make_pair(0xcf, 0xef), // LATIN CAPITAL LETTER I WITH DIAERESIS
  make_pair(0xd0, 0xf0), // LATIN CAPITAL LETTER ETH
  make_pair(0xd1, 0xf1), // LATIN CAPITAL LETTER N WITH TILDE
  make_pair(0xd2, 0xf2), // LATIN CAPITAL LETTER O WITH GRAVE
  make_pair(0xd3, 0xf3), // LATIN CAPITAL LETTER O WITH ACUTE
  make_pair(0xd4, 0xf4), // LATIN CAPITAL LETTER O WITH CIRCUMFLEX
  make_pair(0xd5, 0xf5), // LATIN CAPITAL LETTER O WITH TILDE
  make_pair(0xd6, 0xf6), // LATIN CAPITAL LETTER O WITH DIAERESIS
  make_pair(0xd8, 0xf8), // LATIN CAPITAL LETTER O WITH STROKE
  make_pair(0xd9, 0xf9), // LATIN CAPITAL LETTER U WITH GRAVE
  make_pair(0xda, 0xfa), // LATIN CAPITAL LETTER U WITH ACUTE
  make_pair(0xdb, 0xfb), // LATIN CAPITAL LETTER U WITH CIRCUMFLEX
  make_pair(0xdc, 0xfc), // LATIN CAPITAL LETTER U WITH DIAERESIS
  make_pair(0xdd, 0xfd), // LATIN CAPITAL LETTER Y WITH ACUTE
  make_pair(0xde, 0xfe), // LATIN CAPITAL LETTER THORN
  make_pair(0x100, 0x101), // LATIN CAPITAL LETTER A WITH MACRON
  make_pair(0x102, 0x103), // LATIN CAPITAL LETTER A WITH BREVE
  make_pair(0x104, 0x105), // LATIN CAPITAL LETTER A WITH OGONEK
  make_pair(0x106, 0x107), // LATIN CAPITAL LETTER C WITH ACUTE
  make_pair(0x108, 0x109), // LATIN CAPITAL LETTER C WITH CIRCUMFLEX
  make_pair(0x10a, 0x10b), // LATIN CAPITAL LETTER C WITH DOT ABOVE
  make_pair(0x10c, 0x10d), // LATIN CAPITAL LETTER C WITH CARON
  make_pair(0x10e, 0x10f), // LATIN CAPITAL LETTER D WITH CARON
  make_pair(0x110, 0x111), // LATIN CAPITAL LETTER D WITH STROKE
  make_pair(0x112, 0x113), // LATIN CAPITAL LETTER E WITH MACRON
  make_pair(0x114, 0x115), // LATIN CAPITAL LETTER E WITH BREVE
  make_pair(0x116, 0x117), // LATIN CAPITAL LETTER E WITH DOT ABOVE
  make_pair(0x118, 0x119), // LATIN CAPITAL LETTER E WITH OGONEK
  make_pair(0x11a, 0x11b), // LATIN CAPITAL LETTER E WITH CARON
  make_pair(0x11c, 0x11d), // LATIN CAPITAL LETTER G WITH CIRCUMFLEX
  make_pair(0x11e, 0x11f), // LATIN CAPITAL LETTER G WITH BREVE
  make_pair(0x120, 0x121), // LATIN CAPITAL LETTER G WITH DOT ABOVE
  make_pair(0x122, 0x123), // LATIN CAPITAL LETTER G WITH CEDILLA
  make_pair(0x124, 0x125), // LATIN CAPITAL LETTER H WITH CIRCUMFLEX
  make_pair(0x126, 0x127), // LATIN CAPITAL LETTER H WITH STROKE
  make_pair(0x128, 0x129), // LATIN CAPITAL LETTER I WITH TILDE
  make_pair(0x12a, 0x12b), // LATIN CAPITAL LETTER I WITH MACRON
  make_pair(0x12c, 0x12d), // LATIN CAPITAL LETTER I WITH BREVE
  make_pair(0x12e, 0x12f), // LATIN CAPITAL LETTER I WITH OGONEK
  make_pair(0x130, 0x69), // LATIN CAPITAL LETTER I WITH DOT ABOVE
  make_pair(0x132, 0x133), // LATIN CAPITAL LIGATURE IJ
  make_pair(0x134, 0x135), // LATIN CAPITAL LETTER J WITH CIRCUMFLEX
  make_pair(0x136, 0x137), // LATIN CAPITAL LETTER K WITH CEDILLA
  make_pair(0x139, 0x13a), // LATIN CAPITAL LETTER L WITH ACUTE
  make_pair(0x13b, 0x13c), // LATIN CAPITAL LETTER L WITH CEDILLA
  make_pair(0x13d, 0x13e), // LATIN CAPITAL LETTER L WITH CARON
  make_pair(0x13f, 0x140), // LATIN CAPITAL LETTER L WITH MIDDLE DOT
  make_pair(0x141, 0x142), // LATIN CAPITAL LETTER L WITH STROKE
  make_pair(0x143, 0x144), // LATIN CAPITAL LETTER N WITH ACUTE
  make_pair(0x145, 0x146), // LATIN CAPITAL LETTER N WITH CEDILLA
  make_pair(0x147, 0x148), // LATIN CAPITAL LETTER N WITH CARON
  make_pair(0x14a, 0x14b), // LATIN CAPITAL LETTER ENG
  make_pair(0x14c, 0x14d), // LATIN CAPITAL LETTER O WITH MACRON
  make_pair(0x14e, 0x14f), // LATIN CAPITAL LETTER O WITH BREVE
  make_pair(0x150, 0x151), // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
  make_pair(0x152, 0x153), // LATIN CAPITAL LIGATURE OE
  make_pair(0x154, 0x155), // LATIN CAPITAL LETTER R WITH ACUTE
  make_pair(0x156, 0x157), // LATIN CAPITAL LETTER R WITH CEDILLA
  make_pair(0x158, 0x159), // LATIN CAPITAL LETTER R WITH CARON
  make_pair(0x15a, 0x15b), // LATIN CAPITAL LETTER S WITH ACUTE
  make_pair(0x15c, 0x15d), // LATIN CAPITAL LETTER S WITH CIRCUMFLEX
  make_pair(0x15e, 0x15f), // LATIN CAPITAL LETTER S WITH CEDILLA
  make_pair(0x160, 0x161), // LATIN CAPITAL LETTER S WITH CARON
  make_pair(0x162, 0x163), // LATIN CAPITAL LETTER T WITH CEDILLA
  make_pair(0x164, 0x165), // LATIN CAPITAL LETTER T WITH CARON
  make_pair(0x166, 0x167), // LATIN CAPITAL LETTER T WITH STROKE
  make_pair(0x168, 0x169), // LATIN CAPITAL LETTER U WITH TILDE
  make_pair(0x16a, 0x16b), // LATIN CAPITAL LETTER U WITH MACRON
  make_pair(0x16c, 0x16d), // LATIN CAPITAL LETTER U WITH BREVE
  make_pair(0x16e, 0x16f), // LATIN CAPITAL LETTER U WITH RING ABOVE
  make_pair(0x170, 0x171), // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
  make_pair(0x172, 0x173), // LATIN CAPITAL LETTER U WITH OGONEK
  make_pair(0x174, 0x175), // LATIN CAPITAL LETTER W WITH CIRCUMFLEX
  make_pair(0x176, 0x177), // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
  make_pair(0x178, 0xff), // LATIN CAPITAL LETTER Y WITH DIAERESIS
  make_pair(0x179, 0x17a), // LATIN CAPITAL LETTER Z WITH ACUTE
  make_pair(0x17b, 0x17c), // LATIN CAPITAL LETTER Z WITH DOT ABOVE
  make_pair(0x17d, 0x17e), // LATIN CAPITAL LETTER Z WITH CARON
  make_pair(0x181, 0x253), // LATIN CAPITAL LETTER B WITH HOOK
  make_pair(0x182, 0x183), // LATIN CAPITAL LETTER B WITH TOPBAR
  make_pair(0x184, 0x185), // LATIN CAPITAL LETTER TONE SIX
  make_pair(0x186, 0x254), // LATIN CAPITAL LETTER OPEN O
  make_pair(0x187, 0x188), // LATIN CAPITAL LETTER C WITH HOOK
  make_pair(0x189, 0x256), // LATIN CAPITAL LETTER AFRICAN D
  make_pair(0x18a, 0x257), // LATIN CAPITAL LETTER D WITH HOOK
  make_pair(0x18b, 0x18c), // LATIN CAPITAL LETTER D WITH TOPBAR
  make_pair(0x18e, 0x1dd), // LATIN CAPITAL LETTER REVERSED E
  make_pair(0x18f, 0x259), // LATIN CAPITAL LETTER SCHWA
  make_pair(0x190, 0x25b), // LATIN CAPITAL LETTER OPEN E
  make_pair(0x191, 0x192), // LATIN CAPITAL LETTER F WITH HOOK
  make_pair(0x193, 0x260), // LATIN CAPITAL LETTER G WITH HOOK
  make_pair(0x194, 0x263), // LATIN CAPITAL LETTER GAMMA
  make_pair(0x196, 0x269), // LATIN CAPITAL LETTER IOTA
  make_pair(0x197, 0x268), // LATIN CAPITAL LETTER I WITH STROKE
  make_pair(0x198, 0x199), // LATIN CAPITAL LETTER K WITH HOOK
  make_pair(0x19c, 0x26f), // LATIN CAPITAL LETTER TURNED M
  make_pair(0x19d, 0x272), // LATIN CAPITAL LETTER N WITH LEFT HOOK
  make_pair(0x19f, 0x275), // LATIN CAPITAL LETTER O WITH MIDDLE TILDE
  make_pair(0x1a0, 0x1a1), // LATIN CAPITAL LETTER O WITH HORN
  make_pair(0x1a2, 0x1a3), // LATIN CAPITAL LETTER OI
  make_pair(0x1a4, 0x1a5), // LATIN CAPITAL LETTER P WITH HOOK
  make_pair(0x1a6, 0x280), // LATIN LETTER YR
  make_pair(0x1a7, 0x1a8), // LATIN CAPITAL LETTER TONE TWO
  make_pair(0x1a9, 0x283), // LATIN CAPITAL LETTER ESH
  make_pair(0x1ac, 0x1ad), // LATIN CAPITAL LETTER T WITH HOOK
  make_pair(0x1ae, 0x288), // LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
  make_pair(0x1af, 0x1b0), // LATIN CAPITAL LETTER U WITH HORN
  make_pair(0x1b1, 0x28a), // LATIN CAPITAL LETTER UPSILON
  make_pair(0x1b2, 0x28b), // LATIN CAPITAL LETTER V WITH HOOK
  make_pair(0x1b3, 0x1b4), // LATIN CAPITAL LETTER Y WITH HOOK
  make_pair(0x1b5, 0x1b6), // LATIN CAPITAL LETTER Z WITH STROKE
  make_pair(0x1b7, 0x292), // LATIN CAPITAL LETTER EZH
  make_pair(0x1b8, 0x1b9), // LATIN CAPITAL LETTER EZH REVERSED
  make_pair(0x1bc, 0x1bd), // LATIN CAPITAL LETTER TONE FIVE
  make_pair(0x1c4, 0x1c6), // LATIN CAPITAL LETTER DZ WITH CARON
  make_pair(0x1c5, 0x1c6), // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
  make_pair(0x1c7, 0x1c9), // LATIN CAPITAL LETTER LJ
  make_pair(0x1c8, 0x1c9), // LATIN CAPITAL LETTER L WITH SMALL LETTER J
  make_pair(0x1ca, 0x1cc), // LATIN CAPITAL LETTER NJ
  make_pair(0x1cb, 0x1cc), // LATIN CAPITAL LETTER N WITH SMALL LETTER J
  make_pair(0x1cd, 0x1ce), // LATIN CAPITAL LETTER A WITH CARON
  make_pair(0x1cf, 0x1d0), // LATIN CAPITAL LETTER I WITH CARON
  make_pair(0x1d1, 0x1d2), // LATIN CAPITAL LETTER O WITH CARON
  make_pair(0x1d3, 0x1d4), // LATIN CAPITAL LETTER U WITH CARON
  make_pair(0x1d5, 0x1d6), // LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
  make_pair(0x1d7, 0x1d8), // LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
  make_pair(0x1d9, 0x1da), // LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
  make_pair(0x1db, 0x1dc), // LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
  make_pair(0x1de, 0x1df), // LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
  make_pair(0x1e0, 0x1e1), // LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
  make_pair(0x1e2, 0x1e3), // LATIN CAPITAL LETTER AE WITH MACRON
  make_pair(0x1e4, 0x1e5), // LATIN CAPITAL LETTER G WITH STROKE
  make_pair(0x1e6, 0x1e7), // LATIN CAPITAL LETTER G WITH CARON
  make_pair(0x1e8, 0x1e9), // LATIN CAPITAL LETTER K WITH CARON
  make_pair(0x1ea, 0x1eb), // LATIN CAPITAL LETTER O WITH OGONEK
  make_pair(0x1ec, 0x1ed), // LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
  make_pair(0x1ee, 0x1ef), // LATIN CAPITAL LETTER EZH WITH CARON
  make_pair(0x1f1, 0x1f3), // LATIN CAPITAL LETTER DZ
  make_pair(0x1f2, 0x1f3), // LATIN CAPITAL LETTER D WITH SMALL LETTER Z
  make_pair(0x1f4, 0x1f5), // LATIN CAPITAL LETTER G WITH ACUTE
  make_pair(0x1f6, 0x195), // LATIN CAPITAL LETTER HWAIR
  make_pair(0x1f7, 0x1bf), // LATIN CAPITAL LETTER WYNN
  make_pair(0x1f8, 0x1f9), // LATIN CAPITAL LETTER N WITH GRAVE
  make_pair(0x1fa, 0x1fb), // LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
  make_pair(0x1fc, 0x1fd), // LATIN CAPITAL LETTER AE WITH ACUTE
  make_pair(0x1fe, 0x1ff), // LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
  make_pair(0x200, 0x201), // LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
  make_pair(0x202, 0x203), // LATIN CAPITAL LETTER A WITH INVERTED BREVE
  make_pair(0x204, 0x205), // LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
  make_pair(0x206, 0x207), // LATIN CAPITAL LETTER E WITH INVERTED BREVE
  make_pair(0x208, 0x209), // LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
  make_pair(0x20a, 0x20b), // LATIN CAPITAL LETTER I WITH INVERTED BREVE
  make_pair(0x20c, 0x20d), // LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
  make_pair(0x20e, 0x20f), // LATIN CAPITAL LETTER O WITH INVERTED BREVE
  make_pair(0x210, 0x211), // LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
  make_pair(0x212, 0x213), // LATIN CAPITAL LETTER R WITH INVERTED BREVE
  make_pair(0x214, 0x215), // LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
  make_pair(0x216, 0x217), // LATIN CAPITAL LETTER U WITH INVERTED BREVE
  make_pair(0x218, 0x219), // LATIN CAPITAL LETTER S WITH COMMA BELOW
  make_pair(0x21a, 0x21b), // LATIN CAPITAL LETTER T WITH COMMA BELOW
  make_pair(0x21c, 0x21d), // LATIN CAPITAL LETTER YOGH
  make_pair(0x21e, 0x21f), // LATIN CAPITAL LETTER H WITH CARON
  make_pair(0x220, 0x19e), // LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
  make_pair(0x222, 0x223), // LATIN CAPITAL LETTER OU
  make_pair(0x224, 0x225), // LATIN CAPITAL LETTER Z WITH HOOK
  make_pair(0x226, 0x227), // LATIN CAPITAL LETTER A WITH DOT ABOVE
  make_pair(0x228, 0x229), // LATIN CAPITAL LETTER E WITH CEDILLA
  make_pair(0x22a, 0x22b), // LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
  make_pair(0x22c, 0x22d), // LATIN CAPITAL LETTER O WITH TILDE AND MACRON
  make_pair(0x22e, 0x22f), // LATIN CAPITAL LETTER O WITH DOT ABOVE
  make_pair(0x230, 0x231), // LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
  make_pair(0x232, 0x233), // LATIN CAPITAL LETTER Y WITH MACRON
  make_pair(0x23a, 0x2c65), // LATIN CAPITAL LETTER A WITH STROKE
  make_pair(0x23b, 0x23c), // LATIN CAPITAL LETTER C WITH STROKE
  make_pair(0x23d, 0x19a), // LATIN CAPITAL LETTER L WITH BAR
  make_pair(0x23e, 0x2c66), // LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
  make_pair(0x241, 0x242), // LATIN CAPITAL LETTER GLOTTAL STOP
  make_pair(0x243, 0x180), // LATIN CAPITAL LETTER B WITH STROKE
  make_pair(0x244, 0x289), // LATIN CAPITAL LETTER U BAR
  make_pair(0x245, 0x28c), // LATIN CAPITAL LETTER TURNED V
  make_pair(0x246, 0x247), // LATIN CAPITAL LETTER E WITH STROKE
  make_pair(0x248, 0x249), // LATIN CAPITAL LETTER J WITH STROKE
  make_pair(0x24a, 0x24b), // LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
  make_pair(0x24c, 0x24d), // LATIN CAPITAL LETTER R WITH STROKE
  make_pair(0x24e, 0x24f), // LATIN CAPITAL LETTER Y WITH STROKE
  make_pair(0x370, 0x371), // GREEK CAPITAL LETTER HETA
  make_pair(0x372, 0x373), // GREEK CAPITAL LETTER ARCHAIC SAMPI
  make_pair(0x376, 0x377), // GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
  make_pair(0x386, 0x3ac), // GREEK CAPITAL LETTER ALPHA WITH TONOS
  make_pair(0x388, 0x3ad), // GREEK CAPITAL LETTER EPSILON WITH TONOS
  make_pair(0x389, 0x3ae), // GREEK CAPITAL LETTER ETA WITH TONOS
  make_pair(0x38a, 0x3af), // GREEK CAPITAL LETTER IOTA WITH TONOS
  make_pair(0x38c, 0x3cc), // GREEK CAPITAL LETTER OMICRON WITH TONOS
  make_pair(0x38e, 0x3cd), // GREEK CAPITAL LETTER UPSILON WITH TONOS
  make_pair(0x38f, 0x3ce), // GREEK CAPITAL LETTER OMEGA WITH TONOS
  make_pair(0x391, 0x3b1), // GREEK CAPITAL LETTER ALPHA
  make_pair(0x392, 0x3b2), // GREEK CAPITAL LETTER BETA
  make_pair(0x393, 0x3b3), // GREEK CAPITAL LETTER GAMMA
  make_pair(0x394, 0x3b4), // GREEK CAPITAL LETTER DELTA
  make_pair(0x395, 0x3b5), // GREEK CAPITAL LETTER EPSILON
  make_pair(0x396, 0x3b6), // GREEK CAPITAL LETTER ZETA
  make_pair(0x397, 0x3b7), // GREEK CAPITAL LETTER ETA
  make_pair(0x398, 0x3b8), // GREEK CAPITAL LETTER THETA
  make_pair(0x399, 0x3b9), // GREEK CAPITAL LETTER IOTA
  make_pair(0x39a, 0x3ba), // GREEK CAPITAL LETTER KAPPA
  make_pair(0x39b, 0x3bb), // GREEK CAPITAL LETTER LAMDA
  make_pair(0x39c, 0x3bc), // GREEK CAPITAL LETTER MU
  make_pair(0x39d, 0x3bd), // GREEK CAPITAL LETTER NU
  make_pair(0x39e, 0x3be), // GREEK CAPITAL LETTER XI
  make_pair(0x39f, 0x3bf), // GREEK CAPITAL LETTER OMICRON
  make_pair(0x3a0, 0x3c0), // GREEK CAPITAL LETTER PI
  make_pair(0x3a1, 0x3c1), // GREEK CAPITAL LETTER RHO
  make_pair(0x3a3, 0x3c3), // GREEK CAPITAL LETTER SIGMA
  make_pair(0x3a4, 0x3c4), // GREEK CAPITAL LETTER TAU
  make_pair(0x3a5, 0x3c5), // GREEK CAPITAL LETTER UPSILON
  make_pair(0x3a6, 0x3c6), // GREEK CAPITAL LETTER PHI
  make_pair(0x3a7, 0x3c7), // GREEK CAPITAL LETTER CHI
  make_pair(0x3a8, 0x3c8), // GREEK CAPITAL LETTER PSI
  make_pair(0x3a9, 0x3c9), // GREEK CAPITAL LETTER OMEGA
  make_pair(0x3aa, 0x3ca), // GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
  make_pair(0x3ab, 0x3cb), // GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
  make_pair(0x3cf, 0x3d7), // GREEK CAPITAL KAI SYMBOL
  make_pair(0x3d8, 0x3d9), // GREEK LETTER ARCHAIC KOPPA
  make_pair(0x3da, 0x3db), // GREEK LETTER STIGMA
  make_pair(0x3dc, 0x3dd), // GREEK LETTER DIGAMMA
  make_pair(0x3de, 0x3df), // GREEK LETTER KOPPA
  make_pair(0x3e0, 0x3e1), // GREEK LETTER SAMPI
  make_pair(0x3e2, 0x3e3), // COPTIC CAPITAL LETTER SHEI
  make_pair(0x3e4, 0x3e5), // COPTIC CAPITAL LETTER FEI
  make_pair(0x3e6, 0x3e7), // COPTIC CAPITAL LETTER KHEI
  make_pair(0x3e8, 0x3e9), // COPTIC CAPITAL LETTER HORI
  make_pair(0x3ea, 0x3eb), // COPTIC CAPITAL LETTER GANGIA
  make_pair(0x3ec, 0x3ed), // COPTIC CAPITAL LETTER SHIMA
  make_pair(0x3ee, 0x3ef), // COPTIC CAPITAL LETTER DEI
  make_pair(0x3f4, 0x3b8), // GREEK CAPITAL THETA SYMBOL
  make_pair(0x3f7, 0x3f8), // GREEK CAPITAL LETTER SHO
  make_pair(0x3f9, 0x3f2), // GREEK CAPITAL LUNATE SIGMA SYMBOL
  make_pair(0x3fa, 0x3fb), // GREEK CAPITAL LETTER SAN
  make_pair(0x3fd, 0x37b), // GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
  make_pair(0x3fe, 0x37c), // GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
  make_pair(0x3ff, 0x37d), // GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
  make_pair(0x400, 0x450), // CYRILLIC CAPITAL LETTER IE WITH GRAVE
  make_pair(0x401, 0x451), // CYRILLIC CAPITAL LETTER IO
  make_pair(0x402, 0x452), // CYRILLIC CAPITAL LETTER DJE
  make_pair(0x403, 0x453), // CYRILLIC CAPITAL LETTER GJE
  make_pair(0x404, 0x454), // CYRILLIC CAPITAL LETTER UKRAINIAN IE
  make_pair(0x405, 0x455), // CYRILLIC CAPITAL LETTER DZE
  make_pair(0x406, 0x456), // CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
  make_pair(0x407, 0x457), // CYRILLIC CAPITAL LETTER YI
  make_pair(0x408, 0x458), // CYRILLIC CAPITAL LETTER JE
  make_pair(0x409, 0x459), // CYRILLIC CAPITAL LETTER LJE
  make_pair(0x40a, 0x45a), // CYRILLIC CAPITAL LETTER NJE
  make_pair(0x40b, 0x45b), // CYRILLIC CAPITAL LETTER TSHE
  make_pair(0x40c, 0x45c), // CYRILLIC CAPITAL LETTER KJE
  make_pair(0x40d, 0x45d), // CYRILLIC CAPITAL LETTER I WITH GRAVE
  make_pair(0x40e, 0x45e), // CYRILLIC CAPITAL LETTER SHORT U
  make_pair(0x40f, 0x45f), // CYRILLIC CAPITAL LETTER DZHE
  make_pair(0x410, 0x430), // CYRILLIC CAPITAL LETTER A
  make_pair(0x411, 0x431), // CYRILLIC CAPITAL LETTER BE
  make_pair(0x412, 0x432), // CYRILLIC CAPITAL LETTER VE
  make_pair(0x413, 0x433), // CYRILLIC CAPITAL LETTER GHE
  make_pair(0x414, 0x434), // CYRILLIC CAPITAL LETTER DE
  make_pair(0x415, 0x435), // CYRILLIC CAPITAL LETTER IE
  make_pair(0x416, 0x436), // CYRILLIC CAPITAL LETTER ZHE
  make_pair(0x417, 0x437), // CYRILLIC CAPITAL LETTER ZE
  make_pair(0x418, 0x438), // CYRILLIC CAPITAL LETTER I
  make_pair(0x419, 0x439), // CYRILLIC CAPITAL LETTER SHORT I
  make_pair(0x41a, 0x43a), // CYRILLIC CAPITAL LETTER KA
  make_pair(0x41b, 0x43b), // CYRILLIC CAPITAL LETTER EL
  make_pair(0x41c, 0x43c), // CYRILLIC CAPITAL LETTER EM
  make_pair(0x41d, 0x43d), // CYRILLIC CAPITAL LETTER EN
  make_pair(0x41e, 0x43e), // CYRILLIC CAPITAL LETTER O
  make_pair(0x41f, 0x43f), // CYRILLIC CAPITAL LETTER PE
  make_pair(0x420, 0x440), // CYRILLIC CAPITAL LETTER ER
  make_pair(0x421, 0x441), // CYRILLIC CAPITAL LETTER ES
  make_pair(0x422, 0x442), // CYRILLIC CAPITAL LETTER TE
  make_pair(0x423, 0x443), // CYRILLIC CAPITAL LETTER U
  make_pair(0x424, 0x444), // CYRILLIC CAPITAL LETTER EF
  make_pair(0x425, 0x445), // CYRILLIC CAPITAL LETTER HA
  make_pair(0x426, 0x446), // CYRILLIC CAPITAL LETTER TSE
  make_pair(0x427, 0x447), // CYRILLIC CAPITAL LETTER CHE
  make_pair(0x428, 0x448), // CYRILLIC CAPITAL LETTER SHA
  make_pair(0x429, 0x449), // CYRILLIC CAPITAL LETTER SHCHA
  make_pair(0x42a, 0x44a), // CYRILLIC CAPITAL LETTER HARD SIGN
  make_pair(0x42b, 0x44b), // CYRILLIC CAPITAL LETTER YERU
  make_pair(0x42c, 0x44c), // CYRILLIC CAPITAL LETTER SOFT SIGN
  make_pair(0x42d, 0x44d), // CYRILLIC CAPITAL LETTER E
  make_pair(0x42e, 0x44e), // CYRILLIC CAPITAL LETTER YU
  make_pair(0x42f, 0x44f), // CYRILLIC CAPITAL LETTER YA
  make_pair(0x460, 0x461), // CYRILLIC CAPITAL LETTER OMEGA
  make_pair(0x462, 0x463), // CYRILLIC CAPITAL LETTER YAT
  make_pair(0x464, 0x465), // CYRILLIC CAPITAL LETTER IOTIFIED E
  make_pair(0x466, 0x467), // CYRILLIC CAPITAL LETTER LITTLE YUS
  make_pair(0x468, 0x469), // CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
  make_pair(0x46a, 0x46b), // CYRILLIC CAPITAL LETTER BIG YUS
  make_pair(0x46c, 0x46d), // CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
  make_pair(0x46e, 0x46f), // CYRILLIC CAPITAL LETTER KSI
  make_pair(0x470, 0x471), // CYRILLIC CAPITAL LETTER PSI
  make_pair(0x472, 0x473), // CYRILLIC CAPITAL LETTER FITA
  make_pair(0x474, 0x475), // CYRILLIC CAPITAL LETTER IZHITSA
  make_pair(0x476, 0x477), // CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
  make_pair(0x478, 0x479), // CYRILLIC CAPITAL LETTER UK
  make_pair(0x47a, 0x47b), // CYRILLIC CAPITAL LETTER ROUND OMEGA
  make_pair(0x47c, 0x47d), // CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
  make_pair(0x47e, 0x47f), // CYRILLIC CAPITAL LETTER OT
  make_pair(0x480, 0x481), // CYRILLIC CAPITAL LETTER KOPPA
  make_pair(0x48a, 0x48b), // CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
  make_pair(0x48c, 0x48d), // CYRILLIC CAPITAL LETTER SEMISOFT SIGN
  make_pair(0x48e, 0x48f), // CYRILLIC CAPITAL LETTER ER WITH TICK
  make_pair(0x490, 0x491), // CYRILLIC CAPITAL LETTER GHE WITH UPTURN
  make_pair(0x492, 0x493), // CYRILLIC CAPITAL LETTER GHE WITH STROKE
  make_pair(0x494, 0x495), // CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
  make_pair(0x496, 0x497), // CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
  make_pair(0x498, 0x499), // CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
  make_pair(0x49a, 0x49b), // CYRILLIC CAPITAL LETTER KA WITH DESCENDER
  make_pair(0x49c, 0x49d), // CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
  make_pair(0x49e, 0x49f), // CYRILLIC CAPITAL LETTER KA WITH STROKE
  make_pair(0x4a0, 0x4a1), // CYRILLIC CAPITAL LETTER BASHKIR KA
  make_pair(0x4a2, 0x4a3), // CYRILLIC CAPITAL LETTER EN WITH DESCENDER
  make_pair(0x4a4, 0x4a5), // CYRILLIC CAPITAL LIGATURE EN GHE
  make_pair(0x4a6, 0x4a7), // CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
  make_pair(0x4a8, 0x4a9), // CYRILLIC CAPITAL LETTER ABKHASIAN HA
  make_pair(0x4aa, 0x4ab), // CYRILLIC CAPITAL LETTER ES WITH DESCENDER
  make_pair(0x4ac, 0x4ad), // CYRILLIC CAPITAL LETTER TE WITH DESCENDER
  make_pair(0x4ae, 0x4af), // CYRILLIC CAPITAL LETTER STRAIGHT U
  make_pair(0x4b0, 0x4b1), // CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
  make_pair(0x4b2, 0x4b3), // CYRILLIC CAPITAL LETTER HA WITH DESCENDER
  make_pair(0x4b4, 0x4b5), // CYRILLIC CAPITAL LIGATURE TE TSE
  make_pair(0x4b6, 0x4b7), // CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
  make_pair(0x4b8, 0x4b9), // CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
  make_pair(0x4ba, 0x4bb), // CYRILLIC CAPITAL LETTER SHHA
  make_pair(0x4bc, 0x4bd), // CYRILLIC CAPITAL LETTER ABKHASIAN CHE
  make_pair(0x4be, 0x4bf), // CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
  make_pair(0x4c0, 0x4cf), // CYRILLIC LETTER PALOCHKA
  make_pair(0x4c1, 0x4c2), // CYRILLIC CAPITAL LETTER ZHE WITH BREVE
  make_pair(0x4c3, 0x4c4), // CYRILLIC CAPITAL LETTER KA WITH HOOK
  make_pair(0x4c5, 0x4c6), // CYRILLIC CAPITAL LETTER EL WITH TAIL
  make_pair(0x4c7, 0x4c8), // CYRILLIC CAPITAL LETTER EN WITH HOOK
  make_pair(0x4c9, 0x4ca), // CYRILLIC CAPITAL LETTER EN WITH TAIL
  make_pair(0x4cb, 0x4cc), // CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
  make_pair(0x4cd, 0x4ce), // CYRILLIC CAPITAL LETTER EM WITH TAIL
  make_pair(0x4d0, 0x4d1), // CYRILLIC CAPITAL LETTER A WITH BREVE
  make_pair(0x4d2, 0x4d3), // CYRILLIC CAPITAL LETTER A WITH DIAERESIS
  make_pair(0x4d4, 0x4d5), // CYRILLIC CAPITAL LIGATURE A IE
  make_pair(0x4d6, 0x4d7), // CYRILLIC CAPITAL LETTER IE WITH BREVE
  make_pair(0x4d8, 0x4d9), // CYRILLIC CAPITAL LETTER SCHWA
  make_pair(0x4da, 0x4db), // CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
  make_pair(0x4dc, 0x4dd), // CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
  make_pair(0x4de, 0x4df), // CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
  make_pair(0x4e0, 0x4e1), // CYRILLIC CAPITAL LETTER ABKHASIAN DZE
  make_pair(0x4e2, 0x4e3), // CYRILLIC CAPITAL LETTER I WITH MACRON
  make_pair(0x4e4, 0x4e5), // CYRILLIC CAPITAL LETTER I WITH DIAERESIS
  make_pair(0x4e6, 0x4e7), // CYRILLIC CAPITAL LETTER O WITH DIAERESIS
  make_pair(0x4e8, 0x4e9), // CYRILLIC CAPITAL LETTER BARRED O
  make_pair(0x4ea, 0x4eb), // CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
  make_pair(0x4ec, 0x4ed), // CYRILLIC CAPITAL LETTER E WITH DIAERESIS
  make_pair(0x4ee, 0x4ef), // CYRILLIC CAPITAL LETTER U WITH MACRON
  make_pair(0x4f0, 0x4f1), // CYRILLIC CAPITAL LETTER U WITH DIAERESIS
  make_pair(0x4f2, 0x4f3), // CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
  make_pair(0x4f4, 0x4f5), // CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
  make_pair(0x4f6, 0x4f7), // CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
  make_pair(0x4f8, 0x4f9), // CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
  make_pair(0x4fa, 0x4fb), // CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
  make_pair(0x4fc, 0x4fd), // CYRILLIC CAPITAL LETTER HA WITH HOOK
  make_pair(0x4fe, 0x4ff), // CYRILLIC CAPITAL LETTER HA WITH STROKE
  make_pair(0x500, 0x501), // CYRILLIC CAPITAL LETTER KOMI DE
  make_pair(0x502, 0x503), // CYRILLIC CAPITAL LETTER KOMI DJE
  make_pair(0x504, 0x505), // CYRILLIC CAPITAL LETTER KOMI ZJE
  make_pair(0x506, 0x507), // CYRILLIC CAPITAL LETTER KOMI DZJE
  make_pair(0x508, 0x509), // CYRILLIC CAPITAL LETTER KOMI LJE
  make_pair(0x50a, 0x50b), // CYRILLIC CAPITAL LETTER KOMI NJE
  make_pair(0x50c, 0x50d), // CYRILLIC CAPITAL LETTER KOMI SJE
  make_pair(0x50e, 0x50f), // CYRILLIC CAPITAL LETTER KOMI TJE
  make_pair(0x510, 0x511), // CYRILLIC CAPITAL LETTER REVERSED ZE
  make_pair(0x512, 0x513), // CYRILLIC CAPITAL LETTER EL WITH HOOK
  make_pair(0x514, 0x515), // CYRILLIC CAPITAL LETTER LHA
  make_pair(0x516, 0x517), // CYRILLIC CAPITAL LETTER RHA
  make_pair(0x518, 0x519), // CYRILLIC CAPITAL LETTER YAE
  make_pair(0x51a, 0x51b), // CYRILLIC CAPITAL LETTER QA
  make_pair(0x51c, 0x51d), // CYRILLIC CAPITAL LETTER WE
  make_pair(0x51e, 0x51f), // CYRILLIC CAPITAL LETTER ALEUT KA
  make_pair(0x520, 0x521), // CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
  make_pair(0x522, 0x523), // CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
  make_pair(0x524, 0x525), // CYRILLIC CAPITAL LETTER PE WITH DESCENDER
  make_pair(0x526, 0x527), // CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
  make_pair(0x531, 0x561), // ARMENIAN CAPITAL LETTER AYB
  make_pair(0x532, 0x562), // ARMENIAN CAPITAL LETTER BEN
  make_pair(0x533, 0x563), // ARMENIAN CAPITAL LETTER GIM
  make_pair(0x534, 0x564), // ARMENIAN CAPITAL LETTER DA
  make_pair(0x535, 0x565), // ARMENIAN CAPITAL LETTER ECH
  make_pair(0x536, 0x566), // ARMENIAN CAPITAL LETTER ZA
  make_pair(0x537, 0x567), // ARMENIAN CAPITAL LETTER EH
  make_pair(0x538, 0x568), // ARMENIAN CAPITAL LETTER ET
  make_pair(0x539, 0x569), // ARMENIAN CAPITAL LETTER TO
  make_pair(0x53a, 0x56a), // ARMENIAN CAPITAL LETTER ZHE
  make_pair(0x53b, 0x56b), // ARMENIAN CAPITAL LETTER INI
  make_pair(0x53c, 0x56c), // ARMENIAN CAPITAL LETTER LIWN
  make_pair(0x53d, 0x56d), // ARMENIAN CAPITAL LETTER XEH
  make_pair(0x53e, 0x56e), // ARMENIAN CAPITAL LETTER CA
  make_pair(0x53f, 0x56f), // ARMENIAN CAPITAL LETTER KEN
  make_pair(0x540, 0x570), // ARMENIAN CAPITAL LETTER HO
  make_pair(0x541, 0x571), // ARMENIAN CAPITAL LETTER JA
  make_pair(0x542, 0x572), // ARMENIAN CAPITAL LETTER GHAD
  make_pair(0x543, 0x573), // ARMENIAN CAPITAL LETTER CHEH
  make_pair(0x544, 0x574), // ARMENIAN CAPITAL LETTER MEN
  make_pair(0x545, 0x575), // ARMENIAN CAPITAL LETTER YI
  make_pair(0x546, 0x576), // ARMENIAN CAPITAL LETTER NOW
  make_pair(0x547, 0x577), // ARMENIAN CAPITAL LETTER SHA
  make_pair(0x548, 0x578), // ARMENIAN CAPITAL LETTER VO
  make_pair(0x549, 0x579), // ARMENIAN CAPITAL LETTER CHA
  make_pair(0x54a, 0x57a), // ARMENIAN CAPITAL LETTER PEH
  make_pair(0x54b, 0x57b), // ARMENIAN CAPITAL LETTER JHEH
  make_pair(0x54c, 0x57c), // ARMENIAN CAPITAL LETTER RA
  make_pair(0x54d, 0x57d), // ARMENIAN CAPITAL LETTER SEH
  make_pair(0x54e, 0x57e), // ARMENIAN CAPITAL LETTER VEW
  make_pair(0x54f, 0x57f), // ARMENIAN CAPITAL LETTER TIWN
  make_pair(0x550, 0x580), // ARMENIAN CAPITAL LETTER REH
  make_pair(0x551, 0x581), // ARMENIAN CAPITAL LETTER CO
  make_pair(0x552, 0x582), // ARMENIAN CAPITAL LETTER YIWN
  make_pair(0x553, 0x583), // ARMENIAN CAPITAL LETTER PIWR
  make_pair(0x554, 0x584), // ARMENIAN CAPITAL LETTER KEH
  make_pair(0x555, 0x585), // ARMENIAN CAPITAL LETTER OH
  make_pair(0x556, 0x586), // ARMENIAN CAPITAL LETTER FEH
  make_pair(0x10a0, 0x2d00), // GEORGIAN CAPITAL LETTER AN
  make_pair(0x10a1, 0x2d01), // GEORGIAN CAPITAL LETTER BAN
  make_pair(0x10a2, 0x2d02), // GEORGIAN CAPITAL LETTER GAN
  make_pair(0x10a3, 0x2d03), // GEORGIAN CAPITAL LETTER DON
  make_pair(0x10a4, 0x2d04), // GEORGIAN CAPITAL LETTER EN
  make_pair(0x10a5, 0x2d05), // GEORGIAN CAPITAL LETTER VIN
  make_pair(0x10a6, 0x2d06), // GEORGIAN CAPITAL LETTER ZEN
  make_pair(0x10a7, 0x2d07), // GEORGIAN CAPITAL LETTER TAN
  make_pair(0x10a8, 0x2d08), // GEORGIAN CAPITAL LETTER IN
  make_pair(0x10a9, 0x2d09), // GEORGIAN CAPITAL LETTER KAN
  make_pair(0x10aa, 0x2d0a), // GEORGIAN CAPITAL LETTER LAS
  make_pair(0x10ab, 0x2d0b), // GEORGIAN CAPITAL LETTER MAN
  make_pair(0x10ac, 0x2d0c), // GEORGIAN CAPITAL LETTER NAR
  make_pair(0x10ad, 0x2d0d), // GEORGIAN CAPITAL LETTER ON
  make_pair(0x10ae, 0x2d0e), // GEORGIAN CAPITAL LETTER PAR
  make_pair(0x10af, 0x2d0f), // GEORGIAN CAPITAL LETTER ZHAR
  make_pair(0x10b0, 0x2d10), // GEORGIAN CAPITAL LETTER RAE
  make_pair(0x10b1, 0x2d11), // GEORGIAN CAPITAL LETTER SAN
  make_pair(0x10b2, 0x2d12), // GEORGIAN CAPITAL LETTER TAR
  make_pair(0x10b3, 0x2d13), // GEORGIAN CAPITAL LETTER UN
  make_pair(0x10b4, 0x2d14), // GEORGIAN CAPITAL LETTER PHAR
  make_pair(0x10b5, 0x2d15), // GEORGIAN CAPITAL LETTER KHAR
  make_pair(0x10b6, 0x2d16), // GEORGIAN CAPITAL LETTER GHAN
  make_pair(0x10b7, 0x2d17), // GEORGIAN CAPITAL LETTER QAR
  make_pair(0x10b8, 0x2d18), // GEORGIAN CAPITAL LETTER SHIN
  make_pair(0x10b9, 0x2d19), // GEORGIAN CAPITAL LETTER CHIN
  make_pair(0x10ba, 0x2d1a), // GEORGIAN CAPITAL LETTER CAN
  make_pair(0x10bb, 0x2d1b), // GEORGIAN CAPITAL LETTER JIL
  make_pair(0x10bc, 0x2d1c), // GEORGIAN CAPITAL LETTER CIL
  make_pair(0x10bd, 0x2d1d), // GEORGIAN CAPITAL LETTER CHAR
  make_pair(0x10be, 0x2d1e), // GEORGIAN CAPITAL LETTER XAN
  make_pair(0x10bf, 0x2d1f), // GEORGIAN CAPITAL LETTER JHAN
  make_pair(0x10c0, 0x2d20), // GEORGIAN CAPITAL LETTER HAE
  make_pair(0x10c1, 0x2d21), // GEORGIAN CAPITAL LETTER HE
  make_pair(0x10c2, 0x2d22), // GEORGIAN CAPITAL LETTER HIE
  make_pair(0x10c3, 0x2d23), // GEORGIAN CAPITAL LETTER WE
  make_pair(0x10c4, 0x2d24), // GEORGIAN CAPITAL LETTER HAR
  make_pair(0x10c5, 0x2d25), // GEORGIAN CAPITAL LETTER HOE
  make_pair(0x10c7, 0x2d27), // GEORGIAN CAPITAL LETTER YN
  make_pair(0x10cd, 0x2d2d), // GEORGIAN CAPITAL LETTER AEN
  make_pair(0x1e00, 0x1e01), // LATIN CAPITAL LETTER A WITH RING BELOW
  make_pair(0x1e02, 0x1e03), // LATIN CAPITAL LETTER B WITH DOT ABOVE
  make_pair(0x1e04, 0x1e05), // LATIN CAPITAL LETTER B WITH DOT BELOW
  make_pair(0x1e06, 0x1e07), // LATIN CAPITAL LETTER B WITH LINE BELOW
  make_pair(0x1e08, 0x1e09), // LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
  make_pair(0x1e0a, 0x1e0b), // LATIN CAPITAL LETTER D WITH DOT ABOVE
  make_pair(0x1e0c, 0x1e0d), // LATIN CAPITAL LETTER D WITH DOT BELOW
  make_pair(0x1e0e, 0x1e0f), // LATIN CAPITAL LETTER D WITH LINE BELOW
  make_pair(0x1e10, 0x1e11), // LATIN CAPITAL LETTER D WITH CEDILLA
  make_pair(0x1e12, 0x1e13), // LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
  make_pair(0x1e14, 0x1e15), // LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
  make_pair(0x1e16, 0x1e17), // LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
  make_pair(0x1e18, 0x1e19), // LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
  make_pair(0x1e1a, 0x1e1b), // LATIN CAPITAL LETTER E WITH TILDE BELOW
  make_pair(0x1e1c, 0x1e1d), // LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
  make_pair(0x1e1e, 0x1e1f), // LATIN CAPITAL LETTER F WITH DOT ABOVE
  make_pair(0x1e20, 0x1e21), // LATIN CAPITAL LETTER G WITH MACRON
  make_pair(0x1e22, 0x1e23), // LATIN CAPITAL LETTER H WITH DOT ABOVE
  make_pair(0x1e24, 0x1e25), // LATIN CAPITAL LETTER H WITH DOT BELOW
  make_pair(0x1e26, 0x1e27), // LATIN CAPITAL LETTER H WITH DIAERESIS
  make_pair(0x1e28, 0x1e29), // LATIN CAPITAL LETTER H WITH CEDILLA
  make_pair(0x1e2a, 0x1e2b), // LATIN CAPITAL LETTER H WITH BREVE BELOW
  make_pair(0x1e2c, 0x1e2d), // LATIN CAPITAL LETTER I WITH TILDE BELOW
  make_pair(0x1e2e, 0x1e2f), // LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
  make_pair(0x1e30, 0x1e31), // LATIN CAPITAL LETTER K WITH ACUTE
  make_pair(0x1e32, 0x1e33), // LATIN CAPITAL LETTER K WITH DOT BELOW
  make_pair(0x1e34, 0x1e35), // LATIN CAPITAL LETTER K WITH LINE BELOW
  make_pair(0x1e36, 0x1e37), // LATIN CAPITAL LETTER L WITH DOT BELOW
  make_pair(0x1e38, 0x1e39), // LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
  make_pair(0x1e3a, 0x1e3b), // LATIN CAPITAL LETTER L WITH LINE BELOW
  make_pair(0x1e3c, 0x1e3d), // LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
  make_pair(0x1e3e, 0x1e3f), // LATIN CAPITAL LETTER M WITH ACUTE
  make_pair(0x1e40, 0x1e41), // LATIN CAPITAL LETTER M WITH DOT ABOVE
  make_pair(0x1e42, 0x1e43), // LATIN CAPITAL LETTER M WITH DOT BELOW
  make_pair(0x1e44, 0x1e45), // LATIN CAPITAL LETTER N WITH DOT ABOVE
  make_pair(0x1e46, 0x1e47), // LATIN CAPITAL LETTER N WITH DOT BELOW
  make_pair(0x1e48, 0x1e49), // LATIN CAPITAL LETTER N WITH LINE BELOW
  make_pair(0x1e4a, 0x1e4b), // LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
  make_pair(0x1e4c, 0x1e4d), // LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
  make_pair(0x1e4e, 0x1e4f), // LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
  make_pair(0x1e50, 0x1e51), // LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
  make_pair(0x1e52, 0x1e53), // LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
  make_pair(0x1e54, 0x1e55), // LATIN CAPITAL LETTER P WITH ACUTE
  make_pair(0x1e56, 0x1e57), // LATIN CAPITAL LETTER P WITH DOT ABOVE
  make_pair(0x1e58, 0x1e59), // LATIN CAPITAL LETTER R WITH DOT ABOVE
  make_pair(0x1e5a, 0x1e5b), // LATIN CAPITAL LETTER R WITH DOT BELOW
  make_pair(0x1e5c, 0x1e5d), // LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
  make_pair(0x1e5e, 0x1e5f), // LATIN CAPITAL LETTER R WITH LINE BELOW
  make_pair(0x1e60, 0x1e61), // LATIN CAPITAL LETTER S WITH DOT ABOVE
  make_pair(0x1e62, 0x1e63), // LATIN CAPITAL LETTER S WITH DOT BELOW
  make_pair(0x1e64, 0x1e65), // LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
  make_pair(0x1e66, 0x1e67), // LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
  make_pair(0x1e68, 0x1e69), // LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
  make_pair(0x1e6a, 0x1e6b), // LATIN CAPITAL LETTER T WITH DOT ABOVE
  make_pair(0x1e6c, 0x1e6d), // LATIN CAPITAL LETTER T WITH DOT BELOW
  make_pair(0x1e6e, 0x1e6f), // LATIN CAPITAL LETTER T WITH LINE BELOW
  make_pair(0x1e70, 0x1e71), // LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
  make_pair(0x1e72, 0x1e73), // LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
  make_pair(0x1e74, 0x1e75), // LATIN CAPITAL LETTER U WITH TILDE BELOW
  make_pair(0x1e76, 0x1e77), // LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
  make_pair(0x1e78, 0x1e79), // LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
  make_pair(0x1e7a, 0x1e7b), // LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
  make_pair(0x1e7c, 0x1e7d), // LATIN CAPITAL LETTER V WITH TILDE
  make_pair(0x1e7e, 0x1e7f), // LATIN CAPITAL LETTER V WITH DOT BELOW
  make_pair(0x1e80, 0x1e81), // LATIN CAPITAL LETTER W WITH GRAVE
  make_pair(0x1e82, 0x1e83), // LATIN CAPITAL LETTER W WITH ACUTE
  make_pair(0x1e84, 0x1e85), // LATIN CAPITAL LETTER W WITH DIAERESIS
  make_pair(0x1e86, 0x1e87), // LATIN CAPITAL LETTER W WITH DOT ABOVE
  make_pair(0x1e88, 0x1e89), // LATIN CAPITAL LETTER W WITH DOT BELOW
  make_pair(0x1e8a, 0x1e8b), // LATIN CAPITAL LETTER X WITH DOT ABOVE
  make_pair(0x1e8c, 0x1e8d), // LATIN CAPITAL LETTER X WITH DIAERESIS
  make_pair(0x1e8e, 0x1e8f), // LATIN CAPITAL LETTER Y WITH DOT ABOVE
  make_pair(0x1e90, 0x1e91), // LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
  make_pair(0x1e92, 0x1e93), // LATIN CAPITAL LETTER Z WITH DOT BELOW
  make_pair(0x1e94, 0x1e95), // LATIN CAPITAL LETTER Z WITH LINE BELOW
  make_pair(0x1e9e, 0xdf), // LATIN CAPITAL LETTER SHARP S
  make_pair(0x1ea0, 0x1ea1), // LATIN CAPITAL LETTER A WITH DOT BELOW
  make_pair(0x1ea2, 0x1ea3), // LATIN CAPITAL LETTER A WITH HOOK ABOVE
  make_pair(0x1ea4, 0x1ea5), // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
  make_pair(0x1ea6, 0x1ea7), // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
  make_pair(0x1ea8, 0x1ea9), // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
  make_pair(0x1eaa, 0x1eab), // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
  make_pair(0x1eac, 0x1ead), // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
  make_pair(0x1eae, 0x1eaf), // LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
  make_pair(0x1eb0, 0x1eb1), // LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
  make_pair(0x1eb2, 0x1eb3), // LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
  make_pair(0x1eb4, 0x1eb5), // LATIN CAPITAL LETTER A WITH BREVE AND TILDE
  make_pair(0x1eb6, 0x1eb7), // LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
  make_pair(0x1eb8, 0x1eb9), // LATIN CAPITAL LETTER E WITH DOT BELOW
  make_pair(0x1eba, 0x1ebb), // LATIN CAPITAL LETTER E WITH HOOK ABOVE
  make_pair(0x1ebc, 0x1ebd), // LATIN CAPITAL LETTER E WITH TILDE
  make_pair(0x1ebe, 0x1ebf), // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
  make_pair(0x1ec0, 0x1ec1), // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
  make_pair(0x1ec2, 0x1ec3), // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
  make_pair(0x1ec4, 0x1ec5), // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
  make_pair(0x1ec6, 0x1ec7), // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
  make_pair(0x1ec8, 0x1ec9), // LATIN CAPITAL LETTER I WITH HOOK ABOVE
  make_pair(0x1eca, 0x1ecb), // LATIN CAPITAL LETTER I WITH DOT BELOW
  make_pair(0x1ecc, 0x1ecd), // LATIN CAPITAL LETTER O WITH DOT BELOW
  make_pair(0x1ece, 0x1ecf), // LATIN CAPITAL LETTER O WITH HOOK ABOVE
  make_pair(0x1ed0, 0x1ed1), // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
  make_pair(0x1ed2, 0x1ed3), // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
  make_pair(0x1ed4, 0x1ed5), // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
  make_pair(0x1ed6, 0x1ed7), // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
  make_pair(0x1ed8, 0x1ed9), // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
  make_pair(0x1eda, 0x1edb), // LATIN CAPITAL LETTER O WITH HORN AND ACUTE
  make_pair(0x1edc, 0x1edd), // LATIN CAPITAL LETTER O WITH HORN AND GRAVE
  make_pair(0x1ede, 0x1edf), // LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
  make_pair(0x1ee0, 0x1ee1), // LATIN CAPITAL LETTER O WITH HORN AND TILDE
  make_pair(0x1ee2, 0x1ee3), // LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
  make_pair(0x1ee4, 0x1ee5), // LATIN CAPITAL LETTER U WITH DOT BELOW
  make_pair(0x1ee6, 0x1ee7), // LATIN CAPITAL LETTER U WITH HOOK ABOVE
  make_pair(0x1ee8, 0x1ee9), // LATIN CAPITAL LETTER U WITH HORN AND ACUTE
  make_pair(0x1eea, 0x1eeb), // LATIN CAPITAL LETTER U WITH HORN AND GRAVE
  make_pair(0x1eec, 0x1eed), // LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
  make_pair(0x1eee, 0x1eef), // LATIN CAPITAL LETTER U WITH HORN AND TILDE
  make_pair(0x1ef0, 0x1ef1), // LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
  make_pair(0x1ef2, 0x1ef3), // LATIN CAPITAL LETTER Y WITH GRAVE
  make_pair(0x1ef4, 0x1ef5), // LATIN CAPITAL LETTER Y WITH DOT BELOW
  make_pair(0x1ef6, 0x1ef7), // LATIN CAPITAL LETTER Y WITH HOOK ABOVE
  make_pair(0x1ef8, 0x1ef9), // LATIN CAPITAL LETTER Y WITH TILDE
  make_pair(0x1efa, 0x1efb), // LATIN CAPITAL LETTER MIDDLE-WELSH LL
  make_pair(0x1efc, 0x1efd), // LATIN CAPITAL LETTER MIDDLE-WELSH V
  make_pair(0x1efe, 0x1eff), // LATIN CAPITAL LETTER Y WITH LOOP
  make_pair(0x1f08, 0x1f00), // GREEK CAPITAL LETTER ALPHA WITH PSILI
  make_pair(0x1f09, 0x1f01), // GREEK CAPITAL LETTER ALPHA WITH DASIA
  make_pair(0x1f0a, 0x1f02), // GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
  make_pair(0x1f0b, 0x1f03), // GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
  make_pair(0x1f0c, 0x1f04), // GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
  make_pair(0x1f0d, 0x1f05), // GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
  make_pair(0x1f0e, 0x1f06), // GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
  make_pair(0x1f0f, 0x1f07), // GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
  make_pair(0x1f18, 0x1f10), // GREEK CAPITAL LETTER EPSILON WITH PSILI
  make_pair(0x1f19, 0x1f11), // GREEK CAPITAL LETTER EPSILON WITH DASIA
  make_pair(0x1f1a, 0x1f12), // GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
  make_pair(0x1f1b, 0x1f13), // GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
  make_pair(0x1f1c, 0x1f14), // GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
  make_pair(0x1f1d, 0x1f15), // GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
  make_pair(0x1f28, 0x1f20), // GREEK CAPITAL LETTER ETA WITH PSILI
  make_pair(0x1f29, 0x1f21), // GREEK CAPITAL LETTER ETA WITH DASIA
  make_pair(0x1f2a, 0x1f22), // GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
  make_pair(0x1f2b, 0x1f23), // GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
  make_pair(0x1f2c, 0x1f24), // GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
  make_pair(0x1f2d, 0x1f25), // GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
  make_pair(0x1f2e, 0x1f26), // GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
  make_pair(0x1f2f, 0x1f27), // GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
  make_pair(0x1f38, 0x1f30), // GREEK CAPITAL LETTER IOTA WITH PSILI
  make_pair(0x1f39, 0x1f31), // GREEK CAPITAL LETTER IOTA WITH DASIA
  make_pair(0x1f3a, 0x1f32), // GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
  make_pair(0x1f3b, 0x1f33), // GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
  make_pair(0x1f3c, 0x1f34), // GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
  make_pair(0x1f3d, 0x1f35), // GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
  make_pair(0x1f3e, 0x1f36), // GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
  make_pair(0x1f3f, 0x1f37), // GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
  make_pair(0x1f48, 0x1f40), // GREEK CAPITAL LETTER OMICRON WITH PSILI
  make_pair(0x1f49, 0x1f41), // GREEK CAPITAL LETTER OMICRON WITH DASIA
  make_pair(0x1f4a, 0x1f42), // GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
  make_pair(0x1f4b, 0x1f43), // GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
  make_pair(0x1f4c, 0x1f44), // GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
  make_pair(0x1f4d, 0x1f45), // GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
  make_pair(0x1f59, 0x1f51), // GREEK CAPITAL LETTER UPSILON WITH DASIA
  make_pair(0x1f5b, 0x1f53), // GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
  make_pair(0x1f5d, 0x1f55), // GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
  make_pair(0x1f5f, 0x1f57), // GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
  make_pair(0x1f68, 0x1f60), // GREEK CAPITAL LETTER OMEGA WITH PSILI
  make_pair(0x1f69, 0x1f61), // GREEK CAPITAL LETTER OMEGA WITH DASIA
  make_pair(0x1f6a, 0x1f62), // GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
  make_pair(0x1f6b, 0x1f63), // GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
  make_pair(0x1f6c, 0x1f64), // GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
  make_pair(0x1f6d, 0x1f65), // GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
  make_pair(0x1f6e, 0x1f66), // GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
  make_pair(0x1f6f, 0x1f67), // GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
  make_pair(0x1f88, 0x1f80), // GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
  make_pair(0x1f89, 0x1f81), // GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
  make_pair(0x1f8a, 0x1f82), // GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
  make_pair(0x1f8b, 0x1f83), // GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
  make_pair(0x1f8c, 0x1f84), // GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
  make_pair(0x1f8d, 0x1f85), // GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
  make_pair(0x1f8e, 0x1f86), // GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
  make_pair(0x1f8f, 0x1f87), // GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
  make_pair(0x1f98, 0x1f90), // GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
  make_pair(0x1f99, 0x1f91), // GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
  make_pair(0x1f9a, 0x1f92), // GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
  make_pair(0x1f9b, 0x1f93), // GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
  make_pair(0x1f9c, 0x1f94), // GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
  make_pair(0x1f9d, 0x1f95), // GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
  make_pair(0x1f9e, 0x1f96), // GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
  make_pair(0x1f9f, 0x1f97), // GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
  make_pair(0x1fa8, 0x1fa0), // GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
  make_pair(0x1fa9, 0x1fa1), // GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
  make_pair(0x1faa, 0x1fa2), // GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
  make_pair(0x1fab, 0x1fa3), // GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
  make_pair(0x1fac, 0x1fa4), // GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
  make_pair(0x1fad, 0x1fa5), // GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
  make_pair(0x1fae, 0x1fa6), // GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
  make_pair(0x1faf, 0x1fa7), // GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
  make_pair(0x1fb8, 0x1fb0), // GREEK CAPITAL LETTER ALPHA WITH VRACHY
  make_pair(0x1fb9, 0x1fb1), // GREEK CAPITAL LETTER ALPHA WITH MACRON
  make_pair(0x1fba, 0x1f70), // GREEK CAPITAL LETTER ALPHA WITH VARIA
  make_pair(0x1fbb, 0x1f71), // GREEK CAPITAL LETTER ALPHA WITH OXIA
  make_pair(0x1fbc, 0x1fb3), // GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
  make_pair(0x1fc8, 0x1f72), // GREEK CAPITAL LETTER EPSILON WITH VARIA
  make_pair(0x1fc9, 0x1f73), // GREEK CAPITAL LETTER EPSILON WITH OXIA
  make_pair(0x1fca, 0x1f74), // GREEK CAPITAL LETTER ETA WITH VARIA
  make_pair(0x1fcb, 0x1f75), // GREEK CAPITAL LETTER ETA WITH OXIA
  make_pair(0x1fcc, 0x1fc3), // GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
  make_pair(0x1fd8, 0x1fd0), // GREEK CAPITAL LETTER IOTA WITH VRACHY
  make_pair(0x1fd9, 0x1fd1), // GREEK CAPITAL LETTER IOTA WITH MACRON
  make_pair(0x1fda, 0x1f76), // GREEK CAPITAL LETTER IOTA WITH VARIA
  make_pair(0x1fdb, 0x1f77), // GREEK CAPITAL LETTER IOTA WITH OXIA
  make_pair(0x1fe8, 0x1fe0), // GREEK CAPITAL LETTER UPSILON WITH VRACHY
  make_pair(0x1fe9, 0x1fe1), // GREEK CAPITAL LETTER UPSILON WITH MACRON
  make_pair(0x1fea, 0x1f7a), // GREEK CAPITAL LETTER UPSILON WITH VARIA
  make_pair(0x1feb, 0x1f7b), // GREEK CAPITAL LETTER UPSILON WITH OXIA
  make_pair(0x1fec, 0x1fe5), // GREEK CAPITAL LETTER RHO WITH DASIA
  make_pair(0x1ff8, 0x1f78), // GREEK CAPITAL LETTER OMICRON WITH VARIA
  make_pair(0x1ff9, 0x1f79), // GREEK CAPITAL LETTER OMICRON WITH OXIA
  make_pair(0x1ffa, 0x1f7c), // GREEK CAPITAL LETTER OMEGA WITH VARIA
  make_pair(0x1ffb, 0x1f7d), // GREEK CAPITAL LETTER OMEGA WITH OXIA
  make_pair(0x1ffc, 0x1ff3), // GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
  make_pair(0x2126, 0x3c9), // OHM SIGN
  make_pair(0x212a, 0x6b), // KELVIN SIGN
  make_pair(0x212b, 0xe5), // ANGSTROM SIGN
  make_pair(0x2132, 0x214e), // TURNED CAPITAL F
  make_pair(0x2160, 0x2170), // ROMAN NUMERAL ONE
  make_pair(0x2161, 0x2171), // ROMAN NUMERAL TWO
  make_pair(0x2162, 0x2172), // ROMAN NUMERAL THREE
  make_pair(0x2163, 0x2173), // ROMAN NUMERAL FOUR
  make_pair(0x2164, 0x2174), // ROMAN NUMERAL FIVE
  make_pair(0x2165, 0x2175), // ROMAN NUMERAL SIX
  make_pair(0x2166, 0x2176), // ROMAN NUMERAL SEVEN
  make_pair(0x2167, 0x2177), // ROMAN NUMERAL EIGHT
  make_pair(0x2168, 0x2178), // ROMAN NUMERAL NINE
  make_pair(0x2169, 0x2179), // ROMAN NUMERAL TEN
  make_pair(0x216a, 0x217a), // ROMAN NUMERAL ELEVEN
  make_pair(0x216b, 0x217b), // ROMAN NUMERAL TWELVE
  make_pair(0x216c, 0x217c), // ROMAN NUMERAL FIFTY
  make_pair(0x216d, 0x217d), // ROMAN NUMERAL ONE HUNDRED
  make_pair(0x216e, 0x217e), // ROMAN NUMERAL FIVE HUNDRED
  make_pair(0x216f, 0x217f), // ROMAN NUMERAL ONE THOUSAND
  make_pair(0x2183, 0x2184), // ROMAN NUMERAL REVERSED ONE HUNDRED
  make_pair(0x24b6, 0x24d0), // CIRCLED LATIN CAPITAL LETTER A
  make_pair(0x24b7, 0x24d1), // CIRCLED LATIN CAPITAL LETTER B
  make_pair(0x24b8, 0x24d2), // CIRCLED LATIN CAPITAL LETTER C
  make_pair(0x24b9, 0x24d3), // CIRCLED LATIN CAPITAL LETTER D
  make_pair(0x24ba, 0x24d4), // CIRCLED LATIN CAPITAL LETTER E
  make_pair(0x24bb, 0x24d5), // CIRCLED LATIN CAPITAL LETTER F
  make_pair(0x24bc, 0x24d6), // CIRCLED LATIN CAPITAL LETTER G
  make_pair(0x24bd, 0x24d7), // CIRCLED LATIN CAPITAL LETTER H
  make_pair(0x24be, 0x24d8), // CIRCLED LATIN CAPITAL LETTER I
  make_pair(0x24bf, 0x24d9), // CIRCLED LATIN CAPITAL LETTER J
  make_pair(0x24c0, 0x24da), // CIRCLED LATIN CAPITAL LETTER K
  make_pair(0x24c1, 0x24db), // CIRCLED LATIN CAPITAL LETTER L
  make_pair(0x24c2, 0x24dc), // CIRCLED LATIN CAPITAL LETTER M
  make_pair(0x24c3, 0x24dd), // CIRCLED LATIN CAPITAL LETTER N
  make_pair(0x24c4, 0x24de), // CIRCLED LATIN CAPITAL LETTER O
  make_pair(0x24c5, 0x24df), // CIRCLED LATIN CAPITAL LETTER P
  make_pair(0x24c6, 0x24e0), // CIRCLED LATIN CAPITAL LETTER Q
  make_pair(0x24c7, 0x24e1), // CIRCLED LATIN CAPITAL LETTER R
  make_pair(0x24c8, 0x24e2), // CIRCLED LATIN CAPITAL LETTER S
  make_pair(0x24c9, 0x24e3), // CIRCLED LATIN CAPITAL LETTER T
  make_pair(0x24ca, 0x24e4), // CIRCLED LATIN CAPITAL LETTER U
  make_pair(0x24cb, 0x24e5), // CIRCLED LATIN CAPITAL LETTER V
  make_pair(0x24cc, 0x24e6), // CIRCLED LATIN CAPITAL LETTER W
  make_pair(0x24cd, 0x24e7), // CIRCLED LATIN CAPITAL LETTER X
  make_pair(0x24ce, 0x24e8), // CIRCLED LATIN CAPITAL LETTER Y
  make_pair(0x24cf, 0x24e9), // CIRCLED LATIN CAPITAL LETTER Z
  make_pair(0x2c00, 0x2c30), // GLAGOLITIC CAPITAL LETTER AZU
  make_pair(0x2c01, 0x2c31), // GLAGOLITIC CAPITAL LETTER BUKY
  make_pair(0x2c02, 0x2c32), // GLAGOLITIC CAPITAL LETTER VEDE
  make_pair(0x2c03, 0x2c33), // GLAGOLITIC CAPITAL LETTER GLAGOLI
  make_pair(0x2c04, 0x2c34), // GLAGOLITIC CAPITAL LETTER DOBRO
  make_pair(0x2c05, 0x2c35), // GLAGOLITIC CAPITAL LETTER YESTU
  make_pair(0x2c06, 0x2c36), // GLAGOLITIC CAPITAL LETTER ZHIVETE
  make_pair(0x2c07, 0x2c37), // GLAGOLITIC CAPITAL LETTER DZELO
  make_pair(0x2c08, 0x2c38), // GLAGOLITIC CAPITAL LETTER ZEMLJA
  make_pair(0x2c09, 0x2c39), // GLAGOLITIC CAPITAL LETTER IZHE
  make_pair(0x2c0a, 0x2c3a), // GLAGOLITIC CAPITAL LETTER INITIAL IZHE
  make_pair(0x2c0b, 0x2c3b), // GLAGOLITIC CAPITAL LETTER I
  make_pair(0x2c0c, 0x2c3c), // GLAGOLITIC CAPITAL LETTER DJERVI
  make_pair(0x2c0d, 0x2c3d), // GLAGOLITIC CAPITAL LETTER KAKO
  make_pair(0x2c0e, 0x2c3e), // GLAGOLITIC CAPITAL LETTER LJUDIJE
  make_pair(0x2c0f, 0x2c3f), // GLAGOLITIC CAPITAL LETTER MYSLITE
  make_pair(0x2c10, 0x2c40), // GLAGOLITIC CAPITAL LETTER NASHI
  make_pair(0x2c11, 0x2c41), // GLAGOLITIC CAPITAL LETTER ONU
  make_pair(0x2c12, 0x2c42), // GLAGOLITIC CAPITAL LETTER POKOJI
  make_pair(0x2c13, 0x2c43), // GLAGOLITIC CAPITAL LETTER RITSI
  make_pair(0x2c14, 0x2c44), // GLAGOLITIC CAPITAL LETTER SLOVO
  make_pair(0x2c15, 0x2c45), // GLAGOLITIC CAPITAL LETTER TVRIDO
  make_pair(0x2c16, 0x2c46), // GLAGOLITIC CAPITAL LETTER UKU
  make_pair(0x2c17, 0x2c47), // GLAGOLITIC CAPITAL LETTER FRITU
  make_pair(0x2c18, 0x2c48), // GLAGOLITIC CAPITAL LETTER HERU
  make_pair(0x2c19, 0x2c49), // GLAGOLITIC CAPITAL LETTER OTU
  make_pair(0x2c1a, 0x2c4a), // GLAGOLITIC CAPITAL LETTER PE
  make_pair(0x2c1b, 0x2c4b), // GLAGOLITIC CAPITAL LETTER SHTA
  make_pair(0x2c1c, 0x2c4c), // GLAGOLITIC CAPITAL LETTER TSI
  make_pair(0x2c1d, 0x2c4d), // GLAGOLITIC CAPITAL LETTER CHRIVI
  make_pair(0x2c1e, 0x2c4e), // GLAGOLITIC CAPITAL LETTER SHA
  make_pair(0x2c1f, 0x2c4f), // GLAGOLITIC CAPITAL LETTER YERU
  make_pair(0x2c20, 0x2c50), // GLAGOLITIC CAPITAL LETTER YERI
  make_pair(0x2c21, 0x2c51), // GLAGOLITIC CAPITAL LETTER YATI
  make_pair(0x2c22, 0x2c52), // GLAGOLITIC CAPITAL LETTER SPIDERY HA
  make_pair(0x2c23, 0x2c53), // GLAGOLITIC CAPITAL LETTER YU
  make_pair(0x2c24, 0x2c54), // GLAGOLITIC CAPITAL LETTER SMALL YUS
  make_pair(0x2c25, 0x2c55), // GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
  make_pair(0x2c26, 0x2c56), // GLAGOLITIC CAPITAL LETTER YO
  make_pair(0x2c27, 0x2c57), // GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
  make_pair(0x2c28, 0x2c58), // GLAGOLITIC CAPITAL LETTER BIG YUS
  make_pair(0x2c29, 0x2c59), // GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
  make_pair(0x2c2a, 0x2c5a), // GLAGOLITIC CAPITAL LETTER FITA
  make_pair(0x2c2b, 0x2c5b), // GLAGOLITIC CAPITAL LETTER IZHITSA
  make_pair(0x2c2c, 0x2c5c), // GLAGOLITIC CAPITAL LETTER SHTAPIC
  make_pair(0x2c2d, 0x2c5d), // GLAGOLITIC CAPITAL LETTER TROKUTASTI A
  make_pair(0x2c2e, 0x2c5e), // GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
  make_pair(0x2c60, 0x2c61), // LATIN CAPITAL LETTER L WITH DOUBLE BAR
  make_pair(0x2c62, 0x26b), // LATIN CAPITAL LETTER L WITH MIDDLE TILDE
  make_pair(0x2c63, 0x1d7d), // LATIN CAPITAL LETTER P WITH STROKE
  make_pair(0x2c64, 0x27d), // LATIN CAPITAL LETTER R WITH TAIL
  make_pair(0x2c67, 0x2c68), // LATIN CAPITAL LETTER H WITH DESCENDER
  make_pair(0x2c69, 0x2c6a), // LATIN CAPITAL LETTER K WITH DESCENDER
  make_pair(0x2c6b, 0x2c6c), // LATIN CAPITAL LETTER Z WITH DESCENDER
  make_pair(0x2c6d, 0x251), // LATIN CAPITAL LETTER ALPHA
  make_pair(0x2c6e, 0x271), // LATIN CAPITAL LETTER M WITH HOOK
  make_pair(0x2c6f, 0x250), // LATIN CAPITAL LETTER TURNED A
  make_pair(0x2c70, 0x252), // LATIN CAPITAL LETTER TURNED ALPHA
  make_pair(0x2c72, 0x2c73), // LATIN CAPITAL LETTER W WITH HOOK
  make_pair(0x2c75, 0x2c76), // LATIN CAPITAL LETTER HALF H
  make_pair(0x2c7e, 0x23f), // LATIN CAPITAL LETTER S WITH SWASH TAIL
  make_pair(0x2c7f, 0x240), // LATIN CAPITAL LETTER Z WITH SWASH TAIL
  make_pair(0x2c80, 0x2c81), // COPTIC CAPITAL LETTER ALFA
  make_pair(0x2c82, 0x2c83), // COPTIC CAPITAL LETTER VIDA
  make_pair(0x2c84, 0x2c85), // COPTIC CAPITAL LETTER GAMMA
  make_pair(0x2c86, 0x2c87), // COPTIC CAPITAL LETTER DALDA
  make_pair(0x2c88, 0x2c89), // COPTIC CAPITAL LETTER EIE
  make_pair(0x2c8a, 0x2c8b), // COPTIC CAPITAL LETTER SOU
  make_pair(0x2c8c, 0x2c8d), // COPTIC CAPITAL LETTER ZATA
  make_pair(0x2c8e, 0x2c8f), // COPTIC CAPITAL LETTER HATE
  make_pair(0x2c90, 0x2c91), // COPTIC CAPITAL LETTER THETHE
  make_pair(0x2c92, 0x2c93), // COPTIC CAPITAL LETTER IAUDA
  make_pair(0x2c94, 0x2c95), // COPTIC CAPITAL LETTER KAPA
  make_pair(0x2c96, 0x2c97), // COPTIC CAPITAL LETTER LAULA
  make_pair(0x2c98, 0x2c99), // COPTIC CAPITAL LETTER MI
  make_pair(0x2c9a, 0x2c9b), // COPTIC CAPITAL LETTER NI
  make_pair(0x2c9c, 0x2c9d), // COPTIC CAPITAL LETTER KSI
  make_pair(0x2c9e, 0x2c9f), // COPTIC CAPITAL LETTER O
  make_pair(0x2ca0, 0x2ca1), // COPTIC CAPITAL LETTER PI
  make_pair(0x2ca2, 0x2ca3), // COPTIC CAPITAL LETTER RO
  make_pair(0x2ca4, 0x2ca5), // COPTIC CAPITAL LETTER SIMA
  make_pair(0x2ca6, 0x2ca7), // COPTIC CAPITAL LETTER TAU
  make_pair(0x2ca8, 0x2ca9), // COPTIC CAPITAL LETTER UA
  make_pair(0x2caa, 0x2cab), // COPTIC CAPITAL LETTER FI
  make_pair(0x2cac, 0x2cad), // COPTIC CAPITAL LETTER KHI
  make_pair(0x2cae, 0x2caf), // COPTIC CAPITAL LETTER PSI
  make_pair(0x2cb0, 0x2cb1), // COPTIC CAPITAL LETTER OOU
  make_pair(0x2cb2, 0x2cb3), // COPTIC CAPITAL LETTER DIALECT-P ALEF
  make_pair(0x2cb4, 0x2cb5), // COPTIC CAPITAL LETTER OLD COPTIC AIN
  make_pair(0x2cb6, 0x2cb7), // COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
  make_pair(0x2cb8, 0x2cb9), // COPTIC CAPITAL LETTER DIALECT-P KAPA
  make_pair(0x2cba, 0x2cbb), // COPTIC CAPITAL LETTER DIALECT-P NI
  make_pair(0x2cbc, 0x2cbd), // COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
  make_pair(0x2cbe, 0x2cbf), // COPTIC CAPITAL LETTER OLD COPTIC OOU
  make_pair(0x2cc0, 0x2cc1), // COPTIC CAPITAL LETTER SAMPI
  make_pair(0x2cc2, 0x2cc3), // COPTIC CAPITAL LETTER CROSSED SHEI
  make_pair(0x2cc4, 0x2cc5), // COPTIC CAPITAL LETTER OLD COPTIC SHEI
  make_pair(0x2cc6, 0x2cc7), // COPTIC CAPITAL LETTER OLD COPTIC ESH
  make_pair(0x2cc8, 0x2cc9), // COPTIC CAPITAL LETTER AKHMIMIC KHEI
  make_pair(0x2cca, 0x2ccb), // COPTIC CAPITAL LETTER DIALECT-P HORI
  make_pair(0x2ccc, 0x2ccd), // COPTIC CAPITAL LETTER OLD COPTIC HORI
  make_pair(0x2cce, 0x2ccf), // COPTIC CAPITAL LETTER OLD COPTIC HA
  make_pair(0x2cd0, 0x2cd1), // COPTIC CAPITAL LETTER L-SHAPED HA
  make_pair(0x2cd2, 0x2cd3), // COPTIC CAPITAL LETTER OLD COPTIC HEI
  make_pair(0x2cd4, 0x2cd5), // COPTIC CAPITAL LETTER OLD COPTIC HAT
  make_pair(0x2cd6, 0x2cd7), // COPTIC CAPITAL LETTER OLD COPTIC GANGIA
  make_pair(0x2cd8, 0x2cd9), // COPTIC CAPITAL LETTER OLD COPTIC DJA
  make_pair(0x2cda, 0x2cdb), // COPTIC CAPITAL LETTER OLD COPTIC SHIMA
  make_pair(0x2cdc, 0x2cdd), // COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
  make_pair(0x2cde, 0x2cdf), // COPTIC CAPITAL LETTER OLD NUBIAN NGI
  make_pair(0x2ce0, 0x2ce1), // COPTIC CAPITAL LETTER OLD NUBIAN NYI
  make_pair(0x2ce2, 0x2ce3), // COPTIC CAPITAL LETTER OLD NUBIAN WAU
  make_pair(0x2ceb, 0x2cec), // COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
  make_pair(0x2ced, 0x2cee), // COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
  make_pair(0x2cf2, 0x2cf3), // COPTIC CAPITAL LETTER BOHAIRIC KHEI
  make_pair(0xa640, 0xa641), // CYRILLIC CAPITAL LETTER ZEMLYA
  make_pair(0xa642, 0xa643), // CYRILLIC CAPITAL LETTER DZELO
  make_pair(0xa644, 0xa645), // CYRILLIC CAPITAL LETTER REVERSED DZE
  make_pair(0xa646, 0xa647), // CYRILLIC CAPITAL LETTER IOTA
  make_pair(0xa648, 0xa649), // CYRILLIC CAPITAL LETTER DJERV
  make_pair(0xa64a, 0xa64b), // CYRILLIC CAPITAL LETTER MONOGRAPH UK
  make_pair(0xa64c, 0xa64d), // CYRILLIC CAPITAL LETTER BROAD OMEGA
  make_pair(0xa64e, 0xa64f), // CYRILLIC CAPITAL LETTER NEUTRAL YER
  make_pair(0xa650, 0xa651), // CYRILLIC CAPITAL LETTER YERU WITH BACK YER
  make_pair(0xa652, 0xa653), // CYRILLIC CAPITAL LETTER IOTIFIED YAT
  make_pair(0xa654, 0xa655), // CYRILLIC CAPITAL LETTER REVERSED YU
  make_pair(0xa656, 0xa657), // CYRILLIC CAPITAL LETTER IOTIFIED A
  make_pair(0xa658, 0xa659), // CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
  make_pair(0xa65a, 0xa65b), // CYRILLIC CAPITAL LETTER BLENDED YUS
  make_pair(0xa65c, 0xa65d), // CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
  make_pair(0xa65e, 0xa65f), // CYRILLIC CAPITAL LETTER YN
  make_pair(0xa660, 0xa661), // CYRILLIC CAPITAL LETTER REVERSED TSE
  make_pair(0xa662, 0xa663), // CYRILLIC CAPITAL LETTER SOFT DE
  make_pair(0xa664, 0xa665), // CYRILLIC CAPITAL LETTER SOFT EL
  make_pair(0xa666, 0xa667), // CYRILLIC CAPITAL LETTER SOFT EM
  make_pair(0xa668, 0xa669), // CYRILLIC CAPITAL LETTER MONOCULAR O
  make_pair(0xa66a, 0xa66b), // CYRILLIC CAPITAL LETTER BINOCULAR O
  make_pair(0xa66c, 0xa66d), // CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
  make_pair(0xa680, 0xa681), // CYRILLIC CAPITAL LETTER DWE
  make_pair(0xa682, 0xa683), // CYRILLIC CAPITAL LETTER DZWE
  make_pair(0xa684, 0xa685), // CYRILLIC CAPITAL LETTER ZHWE
  make_pair(0xa686, 0xa687), // CYRILLIC CAPITAL LETTER CCHE
  make_pair(0xa688, 0xa689), // CYRILLIC CAPITAL LETTER DZZE
  make_pair(0xa68a, 0xa68b), // CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
  make_pair(0xa68c, 0xa68d), // CYRILLIC CAPITAL LETTER TWE
  make_pair(0xa68e, 0xa68f), // CYRILLIC CAPITAL LETTER TSWE
  make_pair(0xa690, 0xa691), // CYRILLIC CAPITAL LETTER TSSE
  make_pair(0xa692, 0xa693), // CYRILLIC CAPITAL LETTER TCHE
  make_pair(0xa694, 0xa695), // CYRILLIC CAPITAL LETTER HWE
  make_pair(0xa696, 0xa697), // CYRILLIC CAPITAL LETTER SHWE
  make_pair(0xa722, 0xa723), // LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
  make_pair(0xa724, 0xa725), // LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
  make_pair(0xa726, 0xa727), // LATIN CAPITAL LETTER HENG
  make_pair(0xa728, 0xa729), // LATIN CAPITAL LETTER TZ
  make_pair(0xa72a, 0xa72b), // LATIN CAPITAL LETTER TRESILLO
  make_pair(0xa72c, 0xa72d), // LATIN CAPITAL LETTER CUATRILLO
  make_pair(0xa72e, 0xa72f), // LATIN CAPITAL LETTER CUATRILLO WITH COMMA
  make_pair(0xa732, 0xa733), // LATIN CAPITAL LETTER AA
  make_pair(0xa734, 0xa735), // LATIN CAPITAL LETTER AO
  make_pair(0xa736, 0xa737), // LATIN CAPITAL LETTER AU
  make_pair(0xa738, 0xa739), // LATIN CAPITAL LETTER AV
  make_pair(0xa73a, 0xa73b), // LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
  make_pair(0xa73c, 0xa73d), // LATIN CAPITAL LETTER AY
  make_pair(0xa73e, 0xa73f), // LATIN CAPITAL LETTER REVERSED C WITH DOT
  make_pair(0xa740, 0xa741), // LATIN CAPITAL LETTER K WITH STROKE
  make_pair(0xa742, 0xa743), // LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
  make_pair(0xa744, 0xa745), // LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
  make_pair(0xa746, 0xa747), // LATIN CAPITAL LETTER BROKEN L
  make_pair(0xa748, 0xa749), // LATIN CAPITAL LETTER L WITH HIGH STROKE
  make_pair(0xa74a, 0xa74b), // LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
  make_pair(0xa74c, 0xa74d), // LATIN CAPITAL LETTER O WITH LOOP
  make_pair(0xa74e, 0xa74f), // LATIN CAPITAL LETTER OO
  make_pair(0xa750, 0xa751), // LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
  make_pair(0xa752, 0xa753), // LATIN CAPITAL LETTER P WITH FLOURISH
  make_pair(0xa754, 0xa755), // LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
  make_pair(0xa756, 0xa757), // LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
  make_pair(0xa758, 0xa759), // LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
  make_pair(0xa75a, 0xa75b), // LATIN CAPITAL LETTER R ROTUNDA
  make_pair(0xa75c, 0xa75d), // LATIN CAPITAL LETTER RUM ROTUNDA
  make_pair(0xa75e, 0xa75f), // LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
  make_pair(0xa760, 0xa761), // LATIN CAPITAL LETTER VY
  make_pair(0xa762, 0xa763), // LATIN CAPITAL LETTER VISIGOTHIC Z
  make_pair(0xa764, 0xa765), // LATIN CAPITAL LETTER THORN WITH STROKE
  make_pair(0xa766, 0xa767), // LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
  make_pair(0xa768, 0xa769), // LATIN CAPITAL LETTER VEND
  make_pair(0xa76a, 0xa76b), // LATIN CAPITAL LETTER ET
  make_pair(0xa76c, 0xa76d), // LATIN CAPITAL LETTER IS
  make_pair(0xa76e, 0xa76f), // LATIN CAPITAL LETTER CON
  make_pair(0xa779, 0xa77a), // LATIN CAPITAL LETTER INSULAR D
  make_pair(0xa77b, 0xa77c), // LATIN CAPITAL LETTER INSULAR F
  make_pair(0xa77d, 0x1d79), // LATIN CAPITAL LETTER INSULAR G
  make_pair(0xa77e, 0xa77f), // LATIN CAPITAL LETTER TURNED INSULAR G
  make_pair(0xa780, 0xa781), // LATIN CAPITAL LETTER TURNED L
  make_pair(0xa782, 0xa783), // LATIN CAPITAL LETTER INSULAR R
  make_pair(0xa784, 0xa785), // LATIN CAPITAL LETTER INSULAR S
  make_pair(0xa786, 0xa787), // LATIN CAPITAL LETTER INSULAR T
  make_pair(0xa78b, 0xa78c), // LATIN CAPITAL LETTER SALTILLO
  make_pair(0xa78d, 0x265), // LATIN CAPITAL LETTER TURNED H
  make_pair(0xa790, 0xa791), // LATIN CAPITAL LETTER N WITH DESCENDER
  make_pair(0xa792, 0xa793), // LATIN CAPITAL LETTER C WITH BAR
  make_pair(0xa7a0, 0xa7a1), // LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
  make_pair(0xa7a2, 0xa7a3), // LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
  make_pair(0xa7a4, 0xa7a5), // LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
  make_pair(0xa7a6, 0xa7a7), // LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
  make_pair(0xa7a8, 0xa7a9), // LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
  make_pair(0xa7aa, 0x266), // LATIN CAPITAL LETTER H WITH HOOK
  make_pair(0xff21, 0xff41), // FULLWIDTH LATIN CAPITAL LETTER A
  make_pair(0xff22, 0xff42), // FULLWIDTH LATIN CAPITAL LETTER B
  make_pair(0xff23, 0xff43), // FULLWIDTH LATIN CAPITAL LETTER C
  make_pair(0xff24, 0xff44), // FULLWIDTH LATIN CAPITAL LETTER D
  make_pair(0xff25, 0xff45), // FULLWIDTH LATIN CAPITAL LETTER E
  make_pair(0xff26, 0xff46), // FULLWIDTH LATIN CAPITAL LETTER F
  make_pair(0xff27, 0xff47), // FULLWIDTH LATIN CAPITAL LETTER G
  make_pair(0xff28, 0xff48), // FULLWIDTH LATIN CAPITAL LETTER H
  make_pair(0xff29, 0xff49), // FULLWIDTH LATIN CAPITAL LETTER I
  make_pair(0xff2a, 0xff4a), // FULLWIDTH LATIN CAPITAL LETTER J
  make_pair(0xff2b, 0xff4b), // FULLWIDTH LATIN CAPITAL LETTER K
  make_pair(0xff2c, 0xff4c), // FULLWIDTH LATIN CAPITAL LETTER L
  make_pair(0xff2d, 0xff4d), // FULLWIDTH LATIN CAPITAL LETTER M
  make_pair(0xff2e, 0xff4e), // FULLWIDTH LATIN CAPITAL LETTER N
  make_pair(0xff2f, 0xff4f), // FULLWIDTH LATIN CAPITAL LETTER O
  make_pair(0xff30, 0xff50), // FULLWIDTH LATIN CAPITAL LETTER P
  make_pair(0xff31, 0xff51), // FULLWIDTH LATIN CAPITAL LETTER Q
  make_pair(0xff32, 0xff52), // FULLWIDTH LATIN CAPITAL LETTER R
  make_pair(0xff33, 0xff53), // FULLWIDTH LATIN CAPITAL LETTER S
  make_pair(0xff34, 0xff54), // FULLWIDTH LATIN CAPITAL LETTER T
  make_pair(0xff35, 0xff55), // FULLWIDTH LATIN CAPITAL LETTER U
  make_pair(0xff36, 0xff56), // FULLWIDTH LATIN CAPITAL LETTER V
  make_pair(0xff37, 0xff57), // FULLWIDTH LATIN CAPITAL LETTER W
  make_pair(0xff38, 0xff58), // FULLWIDTH LATIN CAPITAL LETTER X
  make_pair(0xff39, 0xff59), // FULLWIDTH LATIN CAPITAL LETTER Y
  make_pair(0xff3a, 0xff5a), // FULLWIDTH LATIN CAPITAL LETTER Z
  make_pair(0x10400, 0x10428), // DESERET CAPITAL LETTER LONG I
  make_pair(0x10401, 0x10429), // DESERET CAPITAL LETTER LONG E
  make_pair(0x10402, 0x1042a), // DESERET CAPITAL LETTER LONG A
  make_pair(0x10403, 0x1042b), // DESERET CAPITAL LETTER LONG AH
  make_pair(0x10404, 0x1042c), // DESERET CAPITAL LETTER LONG O
  make_pair(0x10405, 0x1042d), // DESERET CAPITAL LETTER LONG OO
  make_pair(0x10406, 0x1042e), // DESERET CAPITAL LETTER SHORT I
  make_pair(0x10407, 0x1042f), // DESERET CAPITAL LETTER SHORT E
  make_pair(0x10408, 0x10430), // DESERET CAPITAL LETTER SHORT A
  make_pair(0x10409, 0x10431), // DESERET CAPITAL LETTER SHORT AH
  make_pair(0x1040a, 0x10432), // DESERET CAPITAL LETTER SHORT O
  make_pair(0x1040b, 0x10433), // DESERET CAPITAL LETTER SHORT OO
  make_pair(0x1040c, 0x10434), // DESERET CAPITAL LETTER AY
  make_pair(0x1040d, 0x10435), // DESERET CAPITAL LETTER OW
  make_pair(0x1040e, 0x10436), // DESERET CAPITAL LETTER WU
  make_pair(0x1040f, 0x10437), // DESERET CAPITAL LETTER YEE
  make_pair(0x10410, 0x10438), // DESERET CAPITAL LETTER H
  make_pair(0x10411, 0x10439), // DESERET CAPITAL LETTER PEE
  make_pair(0x10412, 0x1043a), // DESERET CAPITAL LETTER BEE
  make_pair(0x10413, 0x1043b), // DESERET CAPITAL LETTER TEE
  make_pair(0x10414, 0x1043c), // DESERET CAPITAL LETTER DEE
  make_pair(0x10415, 0x1043d), // DESERET CAPITAL LETTER CHEE
  make_pair(0x10416, 0x1043e), // DESERET CAPITAL LETTER JEE
  make_pair(0x10417, 0x1043f), // DESERET CAPITAL LETTER KAY
  make_pair(0x10418, 0x10440), // DESERET CAPITAL LETTER GAY
  make_pair(0x10419, 0x10441), // DESERET CAPITAL LETTER EF
  make_pair(0x1041a, 0x10442), // DESERET CAPITAL LETTER VEE
  make_pair(0x1041b, 0x10443), // DESERET CAPITAL LETTER ETH
  make_pair(0x1041c, 0x10444), // DESERET CAPITAL LETTER THEE
  make_pair(0x1041d, 0x10445), // DESERET CAPITAL LETTER ES
  make_pair(0x1041e, 0x10446), // DESERET CAPITAL LETTER ZEE
  make_pair(0x1041f, 0x10447), // DESERET CAPITAL LETTER ESH
  make_pair(0x10420, 0x10448), // DESERET CAPITAL LETTER ZHEE
  make_pair(0x10421, 0x10449), // DESERET CAPITAL LETTER ER
  make_pair(0x10422, 0x1044a), // DESERET CAPITAL LETTER EL
  make_pair(0x10423, 0x1044b), // DESERET CAPITAL LETTER EM
  make_pair(0x10424, 0x1044c), // DESERET CAPITAL LETTER EN
  make_pair(0x10425, 0x1044d), // DESERET CAPITAL LETTER ENG
  make_pair(0x10426, 0x1044e), // DESERET CAPITAL LETTER OI
  make_pair(0x10427, 0x1044f), // DESERET CAPITAL LETTER EW
  };
  auto itr(lower_bound(begin(mapping), end(mapping), make_pair(cp, uint32_t(0))));
  return (itr != end(mapping) && itr->first == cp)? itr->second: cp;
}

} } // brig::unicode

#endif // BRIG_UNICODE_LOWER_CASE_HPP
